#include<iostream>
#include<algorithm>
using namespace std;
struct Student
{
    int years,months,day;
};
//先定义一个年月日的结构体，需要时int类型，因为后面需要排序
struct SortRule
{
    bool operator()(const Student &s1,const Student &s2)const{
        if(s1.years!=s2.years)
            return s1.years<s2.years;
        else if(s1.months!=s2.months)
            return s1.months<s2.months;
        else 
            return s1.day<s2.day;
    }
};
//我这里自定义的排序规则运用的是运算符重载，没学过的用两层循环一一比较，得到第二大的数
//注意，年龄是年月日越小，年纪越大
int main()
{
    int time;
    cin>>time;
    Student* stus=new Student[time];
    for(int i=0;i<time;i++)
    {
        cin>>(stus+i)->years>>(stus+i)->months>>(stus+i)->day;
    }
    sort(stus,stus+time,SortRule());
    //如上述，如果不会重载自定义运算符，可以两层循环解决。
    //感觉后台数据不大
    cout<<stus[1].years<<"-"<<stus[1].months<<"-"<<stus[1].day<<endl;
    delete[] stus;
}